package com.juzipi.demo.service;


import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.juzipi.demo.mapper.ArticleMapper;
import com.juzipi.demo.pojo.Article;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class ArticleService {


    @Autowired
    private ArticleMapper articleMapper;



    public List<Article> queryArticleList() {

        List<Article> list = articleMapper.selectAll();
        return list;
    }



    public Article queryArticleById(Integer id) {
        Article articles = articleMapper.selectByPrimaryKey(id);

        Article article = articleMapper.selectOne(articles);

        return article;
    }

    public Map<String,Object> queryArticleByPage(Integer pageNum,Integer pageSize) {
        //分页查询，使用 PageHelper 分页功能
        //在查询之前传入当前页，然后多少记录
        PageHelper.startPage(1,10);
        //startPage 后面紧跟的查询就是分页查询
        List<Article> list = articleMapper.selectAll();
        //使用 PageInfo 包装查询结果，只需要将pageInfo交给页面就可以了
        PageInfo<Article> pageInfo = new PageInfo<>(list, 1);
        //PageInfo 封装了分页的详情信息，也可以指定连续显示的页数
        //不能直接返回 pageInfo ，因为它只是分页的详情信息，并没有具体的数据
        //我明白了，可用一个类来装返回的结果集，也可以用map来装，不过听说用map不太好
        //还是加一个新类来做统一返回的结果集比较好
        //map是真的快乐，put 就完事了
        HashMap<String, Object> hashMap = new HashMap<>();
        //条数
        hashMap.put("条数",pageInfo.getTotal());
        //总数
        hashMap.put("总数",pageInfo.getList());
        //页面大小
        hashMap.put("页面大小",pageInfo.getPageSize());


        return hashMap;
    }
}
